package com.str.service;

import com.str.dto.*;
import com.str.vo.ResponseVO;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 试剂盒(KitInfo)表服务接口
 *
 * @author makejava
 * @since 2023-04-15 11:44:05
 */
public interface KitInfoService {

    /**
     * 分页查询基因数据列表
     * @param dto
     * @param request
     * @return
     */
    ResponseVO queryKitInfoList(QueryKitInfoListDto dto, HttpServletRequest request);

    /**
     * 基因详情数据查询(编辑数据回显)
     * @param dto
     * @param request
     * @return
     */
    ResponseVO queryDetailsKitInfo(QueryDetailsKitInfoDto dto, HttpServletRequest request);

    /**
     * 新增、修改基因数据
     * @param dto
     * @param request
     * @return
     */
    ResponseVO saveOrUpdateKitInfo(SaveOrUpdateKitInfoDto dto, HttpServletRequest request);

    /**
     * 删除基因数据
     * @param dto
     * @param request
     * @return
     */
    ResponseVO deleteKitInfo(QueryDetailsKitInfoDto dto, HttpServletRequest request);

    /**
     * 基因详情数据查询(编辑数据回显)-根据基因座名称模糊查询等位基因、峰面积及其示例个体数据信息
     * @param dto
     * @param request
     * @return
     */
    ResponseVO queryDataByLocusName(QueryDataByLocusNameDto dto, HttpServletRequest request);

    /**
     * 导入Excel基因数据
     * @param file
     * @param request
     * @return
     */
    ResponseVO importKitInfo(MultipartFile file, HttpServletRequest request) throws Exception;

    /**
     * 导出基因数据
     * @param dto
     * @param request
     * @return
     */
    ResponseVO exportKitInfo(ExportKitInfoDto dto, HttpServletRequest request, HttpServletResponse response);

    /**
     * 获取已存在的试剂盒名称集合
     * @param request
     * @return
     */
    ResponseVO queryKitNameList(HttpServletRequest request);
}
